<?php 
include("MainImport.php");

class FachadaI
{
   private static $instancia;
   

   private function __construct()
   {
   	
   }

   public static function getInterface()
   {
      if (  !self::$instancia instanceof self)
      {
         self::$instancia = new self;
      }
      return self::$instancia;
   }
   
   
   
   //Metodos de Instancia:
   
   public function ReportarDanos(ReporteDano $datos)
   {
        $ente = BD::getBD()->getEnteGub($datos->getUbicacion());
        $user = BD::getBD()->getUser($datos->getUsuario());
       
		$reporte = new Reporte($datos, $user, $ente);
        
        $reporte->analizarDescripcion();
        
        $contenido=
        "<p>El usuario \"".$user->getNombre()."\" ha hecho un reporte de datos "
        ."a nuestra pagina web.<br>Los datos de contacto de este usuario son:<br>"
        ."<b>Telefono:</b> ".$user->getTelf()."<br>"
        ."<b>Correo:</b> ".$user->getCorreo()."<br>"
        ."<b>El reporte de este usuario es el siguiente:</b> ".$reporte->getDescripcion()."</p>";
        
        $asunto = "Email de reporte de datos de SISMACEM";
        
        MailManager::getMailManager()->SendMail($asunto, $contenido, $ente->getCorreo());
		
        $reporte->save();
   }
   
   public function getArrayEstados()
   {
       return BD::getBD()->getArrayEstados();
   }
   
   //Proteccion del patron Singlenton:
   
   public function __clone()
   {
      trigger_error("Operación Invalida: No puedes clonar una instancia de ". get_class($this) ." class.", E_USER_ERROR );
   }
   
   
   public function __wakeup()
   {
      trigger_error("No puedes deserializar una instancia de ". get_class($this) ." class.");
   }
   
   
   public function __sleep()
   {
      trigger_error("No puedes serializar una instancia de ". get_class($this) ." class.");
   }
}
?>
